{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-automation-features",
      "artifactVersion": "7.10-HF05",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.ecm.automation.core",
          "org.nuxeo.ecm.automation.features",
          "org.nuxeo.ecm.automation.io",
          "org.nuxeo.ecm.automation.jsf",
          "org.nuxeo.ecm.automation.scripting",
          "org.nuxeo.ecm.automation.server"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.automation",
        "id": "grp:org.nuxeo.ecm.automation",
        "name": "org.nuxeo.ecm.automation",
        "parentIds": [],
        "readmes": [],
        "version": "7.10"
      },
      "bundleId": "org.nuxeo.ecm.automation.features",
      "components": [
        {
          "@type": "NXComponent",
          "documentation": "@author Bogdan Stefanescu (bs@nuxeo.com)\n",
          "documentationHtml": "<p></p>",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.operation.OperationServiceComponent--operations",
              "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.features/org.nuxeo.ecm.core.automation.featuresContrib/Contributions/org.nuxeo.ecm.core.automation.featuresContrib--operations",
              "id": "org.nuxeo.ecm.core.automation.featuresContrib--operations",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "name": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "type": "service"
              },
              "version": "7.10-HF05",
              "xml": "<extension point=\"operations\" target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\">\n\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.services.query.DocumentPaginatedQuery\">\n      <widgets>\n        <widget name=\"query\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">Query</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">nxql</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>query</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.services.query.ResultSetPaginatedQuery\">\n      <widgets>\n        <widget name=\"query\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">ResultSet Query</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">nxql</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>query</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.services.AuditLog\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.services.AuditQuery\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.services.AuditPageProviderOperation\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.services.CreateRelation\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.services.GetRelations\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.services.DeleteRelation\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.services.DocumentPageProviderOperation\">\n      <widgets>\n        <widget name=\"query\" type=\"codearea\">\n            <labels>\n              <label mode=\"any\">NXQL query</label>\n            </labels>\n            <properties mode=\"any\">\n              <property name=\"language\">nxql</property>\n              <property name=\"width\">100%</property>\n              <property name=\"height\">100%</property>\n            </properties>\n             <fields>\n              <field>query</field>\n            </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.services.ResultSetPageProviderOperation\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.users.GetDocumentPrincipalEmails\"/>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.users.GetDocumentUsersAndGroups\"/>\n\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.notification.SendMail\"/>\n\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.services.FileManagerImport\"/>\n\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.services.BlobHolderAttach\"/>\n\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.services.GetActions\"/>\n\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.management.GetCounters\"/>\n\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.services.GetDirectoryEntries\"/>\n\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.services.UserWorkspace\"/>\n\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.services.RunOperationOnProvider\"/>\n\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.services.directory.CreateDirectoryEntries\"/>\n\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.services.directory.DeleteDirectoryEntries\"/>\n\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.services.directory.UpdateDirectoryEntries\"/>\n\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.services.directory.ReadDirectoryEntries\"/>\n\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.services.directory.DirectoryProjection\"/>\n\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.users.GetNuxeoPrincipal\"/>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.automation.server.AutomationServer--bindings",
              "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.features/org.nuxeo.ecm.core.automation.featuresContrib/Contributions/org.nuxeo.ecm.core.automation.featuresContrib--bindings",
              "id": "org.nuxeo.ecm.core.automation.featuresContrib--bindings",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.automation.server.AutomationServer",
                "name": "org.nuxeo.ecm.automation.server.AutomationServer",
                "type": "service"
              },
              "version": "7.10-HF05",
              "xml": "<extension point=\"bindings\" target=\"org.nuxeo.ecm.automation.server.AutomationServer\">\n    <!-- don't allow direct access to Audit log -->\n    <binding name=\"Audit.Query\">\n      <administrator>true</administrator>\n    </binding>\n    <binding name=\"Audit.QueryWithPageProvider\">\n      <administrator>true</administrator>\n    </binding>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.operation.OperationServiceComponent--chains",
              "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.features/org.nuxeo.ecm.core.automation.featuresContrib/Contributions/org.nuxeo.ecm.core.automation.featuresContrib--chains",
              "id": "org.nuxeo.ecm.core.automation.featuresContrib--chains",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "name": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "type": "service"
              },
              "version": "7.10-HF05",
              "xml": "<extension point=\"chains\" target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\">\n    <chain id=\"VersionAndAttachFile\">\n      <operation id=\"Context.PushBlobList\">\n      </operation>\n      <operation id=\"Repository.GetDocument\">\n        <param name=\"value\" type=\"string\">expr:Context.get(\"currentDocument\")</param>\n      </operation>\n      <operation id=\"Document.CheckIn\">\n        <param name=\"version\" type=\"string\">minor</param>\n        <param name=\"comment\" type=\"string\">Automatic checkin before file update</param>\n      </operation>\n      <operation id=\"Context.SetInputAsVar\">\n        <param name=\"name\" type=\"string\">newDocument</param>\n      </operation>\n      <operation id=\"Context.SetVar\">\n        <param name=\"name\" type=\"string\">currentDocument</param>\n        <param name=\"value\" type=\"string\">expr:Context.get(\"newDocument\").id</param>\n      </operation>\n      <operation id=\"Context.PopBlobList\">\n      </operation>\n      <operation id=\"BlobHolder.AttachOnCurrentDocument\">\n        <param name=\"useMainBlob\" type=\"boolean\">true</param>\n      </operation>\n    </chain>\n    <chain id=\"AttachFiles\">\n      <operation id=\"BlobHolder.AttachOnCurrentDocument\">\n        <param name=\"useMainBlob\" type=\"boolean\">false</param>\n      </operation>\n    </chain>\n    <chain id=\"VersionAndAttachFiles\">\n      <operation id=\"Context.PushBlobList\">\n      </operation>\n      <operation id=\"Repository.GetDocument\">\n        <param name=\"value\" type=\"string\">expr:Context.get(\"currentDocument\")</param>\n      </operation>\n      <operation id=\"Document.CheckIn\">\n        <param name=\"version\" type=\"string\">minor</param>\n        <param name=\"comment\" type=\"string\">Automatic checkin before files update</param>\n      </operation>\n      <operation id=\"Context.SetInputAsVar\">\n        <param name=\"name\" type=\"string\">newDocument</param>\n      </operation>\n      <operation id=\"Context.SetVar\">\n        <param name=\"name\" type=\"string\">currentDocument</param>\n        <param name=\"value\" type=\"string\">expr:Context.get(\"newDocument\").id</param>\n      </operation>\n      <operation id=\"Context.PopBlobList\">\n      </operation>\n      <operation id=\"BlobHolder.AttachOnCurrentDocument\">\n        <param name=\"useMainBlob\" type=\"boolean\">false</param>\n      </operation>\n    </chain>\n    <chain id=\"FileManager.ImportWithMetaData\">\n      <operation id=\"FileManager.Import\">\n         <param name=\"overwite\" type=\"boolean\">true</param>\n      </operation>\n      <operation id=\"Document.Update\">\n        <param name=\"properties\" type=\"properties\">expr:Context.get(\"docMetaData\")</param>\n      </operation>\n    </chain>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.features/org.nuxeo.ecm.core.automation.featuresContrib",
          "name": "org.nuxeo.ecm.core.automation.featuresContrib",
          "requirements": [],
          "services": [],
          "version": "7.10-HF05",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.automation.featuresContrib\" version=\"1.0\">\n\n  <documentation>@author Bogdan Stefanescu (bs@nuxeo.com)</documentation>\n\n  <extension target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\"\n    point=\"operations\">\n\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.services.query.DocumentPaginatedQuery\">\n      <widgets>\n        <widget name=\"query\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">Query</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">nxql</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>query</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation class=\"org.nuxeo.ecm.automation.core.operations.services.query.ResultSetPaginatedQuery\">\n      <widgets>\n        <widget name=\"query\" type=\"codearea\">\n          <labels>\n            <label mode=\"any\">ResultSet Query</label>\n          </labels>\n          <properties mode=\"any\">\n            <property name=\"language\">nxql</property>\n            <property name=\"width\">100%</property>\n            <property name=\"height\">100%</property>\n          </properties>\n          <fields>\n            <field>query</field>\n          </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation\n      class=\"org.nuxeo.ecm.automation.core.operations.services.AuditLog\" />\n    <operation\n      class=\"org.nuxeo.ecm.automation.core.operations.services.AuditQuery\" />\n    <operation\n      class=\"org.nuxeo.ecm.automation.core.operations.services.AuditPageProviderOperation\" />\n    <operation\n      class=\"org.nuxeo.ecm.automation.core.operations.services.CreateRelation\" />\n    <operation\n      class=\"org.nuxeo.ecm.automation.core.operations.services.GetRelations\" />\n    <operation\n      class=\"org.nuxeo.ecm.automation.core.operations.services.DeleteRelation\" />\n    <operation\n      class=\"org.nuxeo.ecm.automation.core.operations.services.DocumentPageProviderOperation\" >\n      <widgets>\n        <widget name=\"query\" type=\"codearea\">\n            <labels>\n              <label mode=\"any\">NXQL query</label>\n            </labels>\n            <properties mode=\"any\">\n              <property name=\"language\">nxql</property>\n              <property name=\"width\">100%</property>\n              <property name=\"height\">100%</property>\n            </properties>\n             <fields>\n              <field>query</field>\n            </fields>\n        </widget>\n      </widgets>\n    </operation>\n    <operation\n      class=\"org.nuxeo.ecm.automation.core.operations.services.ResultSetPageProviderOperation\" />\n    <operation\n      class=\"org.nuxeo.ecm.automation.core.operations.users.GetDocumentPrincipalEmails\" />\n    <operation\n      class=\"org.nuxeo.ecm.automation.core.operations.users.GetDocumentUsersAndGroups\" />\n\n    <operation\n      class=\"org.nuxeo.ecm.automation.core.operations.notification.SendMail\" />\n\n    <operation\n      class=\"org.nuxeo.ecm.automation.core.operations.services.FileManagerImport\" />\n\n    <operation\n      class=\"org.nuxeo.ecm.automation.core.operations.services.BlobHolderAttach\" />\n\n    <operation\n      class=\"org.nuxeo.ecm.automation.core.operations.services.GetActions\" />\n\n    <operation\n      class=\"org.nuxeo.ecm.automation.core.operations.management.GetCounters\" />\n\n    <operation\n      class=\"org.nuxeo.ecm.automation.core.operations.services.GetDirectoryEntries\" />\n\n    <operation\n      class=\"org.nuxeo.ecm.automation.core.operations.services.UserWorkspace\" />\n\n    <operation\n      class=\"org.nuxeo.ecm.automation.core.operations.services.RunOperationOnProvider\" />\n\n    <operation\n      class=\"org.nuxeo.ecm.automation.core.operations.services.directory.CreateDirectoryEntries\" />\n\n    <operation\n      class=\"org.nuxeo.ecm.automation.core.operations.services.directory.DeleteDirectoryEntries\" />\n\n    <operation\n      class=\"org.nuxeo.ecm.automation.core.operations.services.directory.UpdateDirectoryEntries\" />\n\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.services.directory.ReadDirectoryEntries\" />\n\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.services.directory.DirectoryProjection\" />\n\n    <operation\n        class=\"org.nuxeo.ecm.automation.core.operations.users.GetNuxeoPrincipal\" />\n\n  </extension>\n\n  <extension point=\"chains\"\n    target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\">\n    <chain id=\"VersionAndAttachFile\">\n      <operation id=\"Context.PushBlobList\">\n      </operation>\n      <operation id =\"Repository.GetDocument\">\n        <param type=\"string\" name=\"value\">expr:Context.get(\"currentDocument\")</param>\n      </operation>\n      <operation id=\"Document.CheckIn\">\n        <param type=\"string\" name=\"version\">minor</param>\n        <param type=\"string\" name=\"comment\">Automatic checkin before file update</param>\n      </operation>\n      <operation id=\"Context.SetInputAsVar\">\n        <param type=\"string\" name=\"name\">newDocument</param>\n      </operation>\n      <operation id=\"Context.SetVar\">\n        <param type=\"string\" name=\"name\">currentDocument</param>\n        <param type=\"string\" name=\"value\">expr:Context.get(\"newDocument\").id</param>\n      </operation>\n      <operation id=\"Context.PopBlobList\">\n      </operation>\n      <operation id=\"BlobHolder.AttachOnCurrentDocument\">\n        <param type=\"boolean\" name=\"useMainBlob\">true</param>\n      </operation>\n    </chain>\n    <chain id=\"AttachFiles\">\n      <operation id=\"BlobHolder.AttachOnCurrentDocument\">\n        <param type=\"boolean\" name=\"useMainBlob\">false</param>\n      </operation>\n    </chain>\n    <chain id=\"VersionAndAttachFiles\">\n      <operation id=\"Context.PushBlobList\">\n      </operation>\n      <operation id =\"Repository.GetDocument\">\n        <param type=\"string\" name=\"value\">expr:Context.get(\"currentDocument\")</param>\n      </operation>\n      <operation id=\"Document.CheckIn\">\n        <param type=\"string\" name=\"version\">minor</param>\n        <param type=\"string\" name=\"comment\">Automatic checkin before files update</param>\n      </operation>\n      <operation id=\"Context.SetInputAsVar\">\n        <param type=\"string\" name=\"name\">newDocument</param>\n      </operation>\n      <operation id=\"Context.SetVar\">\n        <param type=\"string\" name=\"name\">currentDocument</param>\n        <param type=\"string\" name=\"value\">expr:Context.get(\"newDocument\").id</param>\n      </operation>\n      <operation id=\"Context.PopBlobList\">\n      </operation>\n      <operation id=\"BlobHolder.AttachOnCurrentDocument\">\n        <param type=\"boolean\" name=\"useMainBlob\">false</param>\n      </operation>\n    </chain>\n    <chain id=\"FileManager.ImportWithMetaData\">\n      <operation id=\"FileManager.Import\">\n         <param type=\"boolean\" name=\"overwite\">true</param>\n      </operation>\n      <operation id=\"Document.Update\">\n        <param type=\"properties\" name=\"properties\">expr:Context.get(\"docMetaData\")</param>\n      </operation>\n    </chain>\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.automation.server.AutomationServer\"\n    point=\"bindings\">\n    <!-- don't allow direct access to Audit log -->\n    <binding name=\"Audit.Query\">\n      <administrator>true</administrator>\n    </binding>\n    <binding name=\"Audit.QueryWithPageProvider\">\n      <administrator>true</administrator>\n    </binding>\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/operations-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.query.api.PageProviderService--providers",
              "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.features/org.nuxeo.ecm.platform.audit.PageProviderservice.automation.contrib/Contributions/org.nuxeo.ecm.platform.audit.PageProviderservice.automation.contrib--providers",
              "id": "org.nuxeo.ecm.platform.audit.PageProviderservice.automation.contrib--providers",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.query.api.PageProviderService",
                "name": "org.nuxeo.ecm.platform.query.api.PageProviderService",
                "type": "service"
              },
              "version": "7.10-HF05",
              "xml": "<extension point=\"providers\" target=\"org.nuxeo.ecm.platform.query.api.PageProviderService\">\n\n    <genericPageProvider class=\"org.nuxeo.ecm.platform.audit.api.AuditPageProvider\" name=\"AUDIT_BROWSER\">\n      <whereClause docType=\"BasicAuditSearch\">\n        <predicate operator=\">\" parameter=\"log.id\">\n          <field name=\"logId\" schema=\"basicauditsearch\"/>\n        </predicate>\n        <predicate operator=\"BETWEEN\" parameter=\"log.eventDate\">\n          <field name=\"startDate\" schema=\"basicauditsearch\"/>\n          <field name=\"endDate\" schema=\"basicauditsearch\"/>\n        </predicate>\n        <predicate operator=\"IN\" parameter=\"log.category\">\n          <field name=\"eventCategories\" schema=\"basicauditsearch\"/>\n        </predicate>\n        <predicate operator=\"IN\" parameter=\"log.eventId\">\n          <field name=\"eventIds\" schema=\"basicauditsearch\"/>\n        </predicate>\n        <predicate operator=\"IN\" parameter=\"log.principalName\">\n          <field name=\"principalNames\" schema=\"basicauditsearch\"/>\n        </predicate>\n      </whereClause>\n      <sort ascending=\"true\" column=\"log.eventDate\"/>\n      <sort ascending=\"true\" column=\"log.id\"/>\n      <pageSize>10</pageSize>\n    </genericPageProvider>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.features/org.nuxeo.ecm.platform.audit.PageProviderservice.automation.contrib",
          "name": "org.nuxeo.ecm.platform.audit.PageProviderservice.automation.contrib",
          "requirements": [],
          "services": [],
          "version": "7.10-HF05",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.ecm.platform.audit.PageProviderservice.automation.contrib\">\n\n\n  <extension target=\"org.nuxeo.ecm.platform.query.api.PageProviderService\"\n    point=\"providers\">\n\n    <genericPageProvider name=\"AUDIT_BROWSER\"\n      class=\"org.nuxeo.ecm.platform.audit.api.AuditPageProvider\">\n      <whereClause docType=\"BasicAuditSearch\">\n        <predicate parameter=\"log.id\" operator=\"&gt;\">\n          <field schema=\"basicauditsearch\" name=\"logId\" />\n        </predicate>\n        <predicate parameter=\"log.eventDate\" operator=\"BETWEEN\">\n          <field schema=\"basicauditsearch\" name=\"startDate\" />\n          <field schema=\"basicauditsearch\" name=\"endDate\" />\n        </predicate>\n        <predicate parameter=\"log.category\" operator=\"IN\">\n          <field schema=\"basicauditsearch\" name=\"eventCategories\" />\n        </predicate>\n        <predicate parameter=\"log.eventId\" operator=\"IN\">\n          <field schema=\"basicauditsearch\" name=\"eventIds\" />\n        </predicate>\n        <predicate parameter=\"log.principalName\" operator=\"IN\">\n          <field schema=\"basicauditsearch\" name=\"principalNames\" />\n        </predicate>\n      </whereClause>\n      <sort column=\"log.eventDate\" ascending=\"true\" />\n      <sort column=\"log.id\" ascending=\"true\" />\n      <pageSize>10</pageSize>\n    </genericPageProvider>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/pageprovider-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.operation.OperationServiceComponent--contextHelpers",
              "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.features/org.nuxeo.ecm.core.automation.contextContrib/Contributions/org.nuxeo.ecm.core.automation.contextContrib--contextHelpers",
              "id": "org.nuxeo.ecm.core.automation.contextContrib--contextHelpers",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "name": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "type": "service"
              },
              "version": "7.10-HF05",
              "xml": "<extension point=\"contextHelpers\" target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\">\n    <contextHelper class=\"org.nuxeo.ecm.automation.features.PlatformFunctions\" id=\"Fn\"/>\n    <contextHelper class=\"org.nuxeo.ecm.automation.features.HTTPHelper\" id=\"HTTP\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.features/org.nuxeo.ecm.core.automation.contextContrib",
          "name": "org.nuxeo.ecm.core.automation.contextContrib",
          "requirements": [],
          "services": [],
          "version": "7.10-HF05",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.automation.contextContrib\" version=\"1.0\">\n\n  <extension target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\"\n             point=\"contextHelpers\">\n    <contextHelper id=\"Fn\" class=\"org.nuxeo.ecm.automation.features.PlatformFunctions\"/>\n    <contextHelper id=\"HTTP\" class=\"org.nuxeo.ecm.automation.features.HTTPHelper\"/>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/helpers-contrib.xml",
          "xmlPureComponent": true
        }
      ],
      "fileName": "nuxeo-automation-features-7.10-HF05.jar",
      "groupId": "org.nuxeo.ecm.automation",
      "hierarchyPath": "/grp:org.nuxeo.ecm.automation/org.nuxeo.ecm.automation.features",
      "id": "org.nuxeo.ecm.automation.features",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: Apache Maven\r\nBuilt-By: jenkins\r\nBuild-Jdk: 1.8.0_60\r\nBundle-ManifestVersion: 2\r\nBundle-Version: 7.10-HF05-t20160217-105227\r\nBundle-Name: Nuxeo Automation Features\r\nBundle-SymbolicName: org.nuxeo.ecm.automation.features;singleton:=true\r\nBundle-Vendor: Nuxeo\r\nBundle-Localization: bundle\r\nRequire-Bundle: org.nuxeo.ecm.automation.core\r\nExport-Package: org.nuxeo.ecm.automation.core\r\nEclipse-LazyStart: true\r\nNuxeo-Component: OSGI-INF/operations-contrib.xml,OSGI-INF/pageprovider\r\n -contrib.xml,OSGI-INF/helpers-contrib.xml\r\nBundle-Activator: org.nuxeo.ecm.automation.features.Activator\r\n\r\n",
      "packages": [],
      "requirements": [],
      "version": "7.10-HF05"
    }
  ],
  "creationDate": 1664792867649,
  "key": "Nuxeo Platform LTS 2015-7.10",
  "name": "Nuxeo Platform LTS 2015",
  "operations": [
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Services",
      "contributingComponent": "org.nuxeo.ecm.core.automation.featuresContrib",
      "description": "Get the entries of a directory. This is returning a blob containing a serialized JSON array. The input document, if specified, is used as a context for a potential local configuration of the directory.",
      "hierarchyPath": "/op:Directory.Entries",
      "label": "Get directory entries",
      "name": "Directory.Entries",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.services.GetDirectoryEntries",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "directoryName",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "lang",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "translateLabels",
          "order": 0,
          "type": "boolean",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "blob",
        "document",
        "blob"
      ],
      "url": "Directory.Entries",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Services",
      "contributingComponent": "org.nuxeo.ecm.core.automation.featuresContrib",
      "description": "Executes a query using given filter and return only the column *<b>columnName</b>*. The result is assigned to the context variable *<b>variableName</b>*. The filters are specified as <i>key=value</i> pairs separated by a new line. The key used for a filter is the column name of the directory. To specify multi-line values you can use a \\ character followed by a new line. <p>Example:<pre>firstName=John<br>lastName=doe</pre>By default, the search filters use exact match. You can do a fulltext search on some specific columns using the fulltextFields. it's specified as comma separated columnName, for instance : <p>Example:<pre>firstName,lastName</pre>",
      "hierarchyPath": "/op:Directory.Projection",
      "label": "Get a Directory Projection",
      "name": "Directory.Projection",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.services.directory.DirectoryProjection",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "columnName",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": true,
          "name": "directoryName",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": true,
          "name": "variableName",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "filters",
          "order": 0,
          "type": "properties",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "fulltextFields",
          "order": 0,
          "type": "stringlist",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "void"
      ],
      "since": "5.7.2",
      "url": "Directory.Projection",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Services",
      "contributingComponent": "org.nuxeo.ecm.core.automation.featuresContrib",
      "description": "Creates directory entries. Entries are sent as a JSON array. Returning the created entries ids as a JSON array.",
      "hierarchyPath": "/op:Directory.CreateEntries",
      "label": "Creates directory entries",
      "name": "Directory.CreateEntries",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.services.directory.CreateDirectoryEntries",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "directoryName",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": true,
          "name": "entries",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "blob"
      ],
      "url": "Directory.CreateEntries",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Services",
      "contributingComponent": "org.nuxeo.ecm.core.automation.featuresContrib",
      "description": "Deletes directory entries. Entries ids to delete are sent through a JSON array. Returns deleted entries id as a JSON array.",
      "hierarchyPath": "/op:Directory.DeleteEntries",
      "label": "Deletes directory entries",
      "name": "Directory.DeleteEntries",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.services.directory.DeleteDirectoryEntries",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "directoryName",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": true,
          "name": "entries",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "markObsolete",
          "order": 0,
          "type": "boolean",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "blob"
      ],
      "url": "Directory.DeleteEntries",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Document.PageProvider"
      ],
      "category": "Fetch",
      "contributingComponent": "org.nuxeo.ecm.core.automation.featuresContrib",
      "description": "Perform a query or a named provider query on the repository. Result is paginated. The query result will become the input for the next operation. If no query or provider name is given, a query returning all the documents that the user has access to will be executed.",
      "hierarchyPath": "/op:Repository.PageProvider",
      "label": "PageProvider",
      "name": "Repository.PageProvider",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.services.DocumentPageProviderOperation",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "currentPageIndex",
          "order": 0,
          "type": "integer",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "documentLinkBuilder",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "escapePatternParameters",
          "order": 0,
          "type": "boolean",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "language",
          "order": 0,
          "type": "string",
          "values": [
            "NXQL"
          ],
          "widget": "Option"
        },
        {
          "description": null,
          "isRequired": false,
          "name": "maxResults",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "namedParameters",
          "order": 0,
          "type": "properties",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "page",
          "order": 0,
          "type": "integer",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "pageSize",
          "order": 0,
          "type": "integer",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "providerName",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "query",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "queryParams",
          "order": 0,
          "type": "stringlist",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "quotePatternParameters",
          "order": 0,
          "type": "boolean",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "sortBy",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "sortInfo",
          "order": 0,
          "type": "stringlist",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "sortOrder",
          "order": 0,
          "type": "string",
          "values": [
            "ASC",
            "DESC"
          ],
          "widget": "Option"
        }
      ],
      "signature": [
        "void",
        "documents"
      ],
      "url": "Repository.PageProvider",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Notification.SendMail"
      ],
      "category": "Notification",
      "contributingComponent": "org.nuxeo.ecm.core.automation.featuresContrib",
      "description": "Send an email using the input document to the specified recipients. You can use the HTML parameter to specify whether you message is in HTML format or in plain text. Also you can attach any blob on the current document to the message by using the comma separated list of xpath expressions 'files'. If you xpath points to a blob list all blobs in the list will be attached. Return back the input document(s). If rollbackOnError is true, the whole chain will be rollbacked if an error occurs while trying to send the email (for instance if no SMTP server is configured), else a simple warning will be logged and the chain will continue.",
      "hierarchyPath": "/op:Document.Mail",
      "label": "Send E-Mail",
      "name": "Document.Mail",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.notification.SendMail",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "from",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": true,
          "name": "message",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": "MailTemplate"
        },
        {
          "description": null,
          "isRequired": true,
          "name": "subject",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": true,
          "name": "to",
          "order": 0,
          "type": "stringlist",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "HTML",
          "order": 0,
          "type": "boolean",
          "values": [
            "false"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "Strict User Resolution",
          "order": 0,
          "type": "boolean",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "bcc",
          "order": 0,
          "type": "stringlist",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "cc",
          "order": 0,
          "type": "stringlist",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "files",
          "order": 0,
          "type": "stringlist",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "replyto",
          "order": 0,
          "type": "stringlist",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "rollbackOnError",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "viewId",
          "order": 0,
          "type": "string",
          "values": [
            "view_documents"
          ],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.Mail",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Resultset.PageProvider"
      ],
      "category": "Fetch",
      "contributingComponent": "org.nuxeo.ecm.core.automation.featuresContrib",
      "description": "Perform a query or a named provider query on the repository. Result is paginated. The result is returned as a RecordSet (QueryAndFetch) rather than as a List of DocumentThe query result will become the input for the next operation. If no query or provider name is given, a query returning all the documents that the user has access to will be executed.",
      "hierarchyPath": "/op:Repository.ResultSetPageProvider",
      "label": "QueryAndFetch",
      "name": "Repository.ResultSetPageProvider",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.services.ResultSetPageProviderOperation",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "documentLinkBuilder",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "language",
          "order": 0,
          "type": "string",
          "values": [
            "NXQL",
            "CMIS"
          ],
          "widget": "Option"
        },
        {
          "description": null,
          "isRequired": false,
          "name": "maxResults",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "namedParameters",
          "order": 0,
          "type": "properties",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "page",
          "order": 0,
          "type": "integer",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "pageSize",
          "order": 0,
          "type": "integer",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "providerName",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "query",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "queryParams",
          "order": 0,
          "type": "stringlist",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "sortBy",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "sortInfo",
          "order": 0,
          "type": "stringlist",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "sortOrder",
          "order": 0,
          "type": "string",
          "values": [
            "ASC",
            "DESC"
          ],
          "widget": "Option"
        }
      ],
      "signature": [
        "void",
        "recordset"
      ],
      "url": "Repository.ResultSetPageProvider",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Context.RunOperationOnProvider"
      ],
      "category": "Execution Flow",
      "contributingComponent": "org.nuxeo.ecm.core.automation.featuresContrib",
      "description": "Run an operation for each page of the provider defined by the provider name, the operation input is the curent page ",
      "hierarchyPath": "/op:RunOperationOnProvider",
      "label": "Run For Each Page",
      "name": "RunOperationOnProvider",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.services.RunOperationOnProvider",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "id",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "isolate",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        }
      ],
      "signature": [
        "documents",
        "void"
      ],
      "url": "RunOperationOnProvider",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Audit.PageProvider"
      ],
      "category": "Fetch",
      "contributingComponent": "org.nuxeo.ecm.core.automation.featuresContrib",
      "description": "Perform a query or a named provider query against Audit logs. Result is paginated. The query result will become the input for the next operation. If no query or provider name is given, a query based on default Audit page provider will be executed.",
      "hierarchyPath": "/op:Audit.QueryWithPageProvider",
      "label": "Audit Query With Page Provider",
      "name": "Audit.QueryWithPageProvider",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.services.AuditPageProviderOperation",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "currentPageIndex",
          "order": 0,
          "type": "integer",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "language",
          "order": 0,
          "type": "string",
          "values": [
            "NXQL"
          ],
          "widget": "Option"
        },
        {
          "description": null,
          "isRequired": false,
          "name": "maxResults",
          "order": 0,
          "type": "integer",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "namedQueryParams",
          "order": 0,
          "type": "properties",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "page",
          "order": 0,
          "type": "integer",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "pageSize",
          "order": 0,
          "type": "integer",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "providerName",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "query",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "queryParams",
          "order": 0,
          "type": "stringlist",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "sortBy",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "sortInfo",
          "order": 0,
          "type": "stringlist",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "sortOrder",
          "order": 0,
          "type": "string",
          "values": [
            "ASC",
            "DESC"
          ],
          "widget": "Option"
        }
      ],
      "signature": [
        "void",
        "paginable"
      ],
      "url": "Audit.QueryWithPageProvider",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Relations.GetRelations"
      ],
      "category": "Services",
      "contributingComponent": "org.nuxeo.ecm.core.automation.featuresContrib",
      "description": "Get the relations for the input document. The 'outgoing' parameter ca be used to specify whether outgoing or incoming relations should be returned. Retuns a document list.",
      "hierarchyPath": "/op:Document.GetLinkedDocuments",
      "label": "Get Linked Documents",
      "name": "Document.GetLinkedDocuments",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.services.GetRelations",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "predicate",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "graphName",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "outgoing",
          "order": 0,
          "type": "boolean",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "documents"
      ],
      "url": "Document.GetLinkedDocuments",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "ResultSet.PaginatedQuery"
      ],
      "category": "Fetch",
      "contributingComponent": "org.nuxeo.ecm.core.automation.featuresContrib",
      "description": "Perform a query on the repository. The result set returned will become the input for the next operation.",
      "hierarchyPath": "/op:Repository.ResultSetQuery",
      "label": "ResultSet Query",
      "name": "Repository.ResultSetQuery",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.services.query.ResultSetPaginatedQuery",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "query",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "currentPageIndex",
          "order": 0,
          "type": "integer",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "language",
          "order": 0,
          "type": "string",
          "values": [
            "NXQL",
            "CMIS"
          ],
          "widget": "Option"
        },
        {
          "description": null,
          "isRequired": false,
          "name": "namedParameters",
          "order": 0,
          "type": "properties",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "pageSize",
          "order": 0,
          "type": "integer",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "queryParams",
          "order": 0,
          "type": "stringlist",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "sortBy",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "sortOrder",
          "order": 0,
          "type": "string",
          "values": [
            "ASC",
            "DESC"
          ],
          "widget": "Option"
        }
      ],
      "signature": [
        "void",
        "recordset"
      ],
      "since": "6.0",
      "url": "Repository.ResultSetQuery",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Services",
      "contributingComponent": "org.nuxeo.ecm.core.automation.featuresContrib",
      "description": "Reads directory entries. Entries ids to read are sent as a JSON array. Returns the entries as a JSON array of JSON objects containing all fields.",
      "hierarchyPath": "/op:Directory.ReadEntries",
      "label": "Reads directory entries",
      "name": "Directory.ReadEntries",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.services.directory.ReadDirectoryEntries",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "directoryName",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": true,
          "name": "entries",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "lang",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "translateLabels",
          "order": 0,
          "type": "boolean",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "blob"
      ],
      "url": "Directory.ReadEntries",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Document.GetUsersAndGroups"
      ],
      "category": "Users & Groups",
      "contributingComponent": "org.nuxeo.ecm.core.automation.featuresContrib",
      "description": "Fetch the users and groups that have a given permission on the input document and then set them in the context under the given key variable name. The operation returns the input document. You can later use the list of identifiers set by this operation on the context from another operation. The 'key' argument represents the variable name and the 'permission' argument the permission to check. If the 'ignore groups' argument is false then groups will be part of the result. If the 'resolve groups' argument is true then groups are recursively resolved, adding user members of these groups in place of them. Be <b>warned</b> that this may be a very consuming operation. If the 'prefix identifiers' argument is true, then user identifiers are prefixed by 'user:' and groups identifiers are prefixed by 'group:'.",
      "hierarchyPath": "/op:Context.GetUsersGroupIdsWithPermissionOnDoc",
      "label": "Get Users and Groups",
      "name": "Context.GetUsersGroupIdsWithPermissionOnDoc",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.users.GetDocumentUsersAndGroups",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "permission",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": true,
          "name": "variable name",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "ignore groups",
          "order": 0,
          "type": "boolean",
          "values": [
            "false"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "prefix identifiers",
          "order": 0,
          "type": "boolean",
          "values": [
            "false"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "resolve groups",
          "order": 0,
          "type": "boolean",
          "values": [
            "false"
          ],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document"
      ],
      "url": "Context.GetUsersGroupIdsWithPermissionOnDoc",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Document.Query"
      ],
      "category": "Fetch",
      "contributingComponent": "org.nuxeo.ecm.core.automation.featuresContrib",
      "description": "Perform a query on the repository. The document list returned will become the input for the next operation.",
      "hierarchyPath": "/op:Repository.Query",
      "label": "Query",
      "name": "Repository.Query",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.services.query.DocumentPaginatedQuery",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "query",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "currentPageIndex",
          "order": 0,
          "type": "integer",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "language",
          "order": 0,
          "type": "string",
          "values": [
            "NXQL"
          ],
          "widget": "Option"
        },
        {
          "description": null,
          "isRequired": false,
          "name": "namedParameters",
          "order": 0,
          "type": "properties",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "pageSize",
          "order": 0,
          "type": "integer",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "queryParams",
          "order": 0,
          "type": "stringlist",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "sortBy",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "sortOrder",
          "order": 0,
          "type": "string",
          "values": [
            "ASC",
            "DESC"
          ],
          "widget": "Option"
        }
      ],
      "signature": [
        "void",
        "documents"
      ],
      "since": "6.0",
      "url": "Repository.Query",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Services",
      "contributingComponent": "org.nuxeo.ecm.core.automation.featuresContrib",
      "description": "Execute a JPA query against the Audit Service. This is returning a blob with the query result. The result is a serialized JSON array. You can use the context to set query variables but you must prefix using 'audit.query.' the context variable keys that match the ones in the query.",
      "hierarchyPath": "/op:Audit.Query",
      "label": "Query Audit Service",
      "name": "Audit.Query",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.services.AuditQuery",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "query",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": "TextArea"
        },
        {
          "description": null,
          "isRequired": false,
          "name": "maxResults",
          "order": 0,
          "type": "int",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "pageNo",
          "order": 0,
          "type": "int",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "blob"
      ],
      "url": "Audit.Query",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Services",
      "contributingComponent": "org.nuxeo.ecm.core.automation.featuresContrib",
      "description": "Updates directory entries. Entries to update are sent as a JSON array. Returns the updated entries ids as a JSON array of JSON objects containing all fields",
      "hierarchyPath": "/op:Directory.UpdateEntries",
      "label": "Updates directory entries",
      "name": "Directory.UpdateEntries",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.services.directory.UpdateDirectoryEntries",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "directoryName",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": true,
          "name": "entries",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "blob"
      ],
      "url": "Directory.UpdateEntries",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Document.GetPrincipalEmails"
      ],
      "category": "Users & Groups",
      "contributingComponent": "org.nuxeo.ecm.core.automation.featuresContrib",
      "description": "Fetch the principal emails that have a given permission on the input document and then set them in the context under the given key variable name. The operation returns the input document. You can later use the list of principals set by this operation on the context from another operation. The 'key' argument represents the variable name and the 'permission' argument the permission to check. If the 'ignore groups' argument is false then groups are recursively resolved, extracting user members of these groups. Be <b>warned</b> that this may be a very consuming operation.<ul>Note that <li></li><li>groups are not included</li><li>the list pushed into the context is a string list of emails.</li></ul>",
      "hierarchyPath": "/op:Context.GetEmailsWithPermissionOnDoc",
      "label": "Get Principal Emails",
      "name": "Context.GetEmailsWithPermissionOnDoc",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.users.GetDocumentPrincipalEmails",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "permission",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": true,
          "name": "variable name",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "ignore groups",
          "order": 0,
          "type": "boolean",
          "values": [
            "false"
          ],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document"
      ],
      "url": "Context.GetEmailsWithPermissionOnDoc",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Services",
      "contributingComponent": "org.nuxeo.ecm.core.automation.featuresContrib",
      "description": "Retrieve list of available actions for a given category. Action context is built based on the Operation context (currentDocument will be fetched from Context if not provided as input). If this operation is executed in a chain that initialized the Seam context, it will be used for Action context",
      "hierarchyPath": "/op:Actions.GET",
      "label": "List available actions",
      "name": "Actions.GET",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.services.GetActions",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "category",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "lang",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "blob",
        "document",
        "blob"
      ],
      "url": "Actions.GET",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "NuxeoPrincipal.Get"
      ],
      "category": "Users & Groups",
      "contributingComponent": "org.nuxeo.ecm.core.automation.featuresContrib",
      "description": "Retrieve Nuxeo principal and export it as a DocumentModel, if login parameter is not set the Operation will return informations about the current user, otherwise Directory Administration rights are required.",
      "hierarchyPath": "/op:User.Get",
      "label": "Get Nuxeo Principal",
      "name": "User.Get",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.users.GetNuxeoPrincipal",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "login",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "document"
      ],
      "url": "User.Get",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "BlobHolder.Attach"
      ],
      "category": "Files",
      "contributingComponent": "org.nuxeo.ecm.core.automation.featuresContrib",
      "description": "Attach the input file(s) to the current document using the BlobHolder abstraction",
      "hierarchyPath": "/op:BlobHolder.AttachOnCurrentDocument",
      "label": "Attach File or files to the currentDocument.",
      "name": "BlobHolder.AttachOnCurrentDocument",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.services.BlobHolderAttach",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "useMainBlob",
          "order": 0,
          "type": "boolean",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "bloblist",
        "document",
        "blob",
        "document"
      ],
      "url": "BlobHolder.AttachOnCurrentDocument",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Relations.CreateRelation"
      ],
      "category": "Services",
      "contributingComponent": "org.nuxeo.ecm.core.automation.featuresContrib",
      "description": "Create a relation between 2 documents. The subject of the relation will be the input of the operation and the object of the relation will be retrieved from the context using the 'object' field. The 'predicate' field specifies the relation predicate (When using a known predicate, use the full URL like 'purl.org/dc/terms/IsBasedOn', unknown predicates will be treated as plain strings and be the same on the subject and object). The 'outgoing' flag indicates the direction of the relation - the default is false which means the relation will go from the input object to the object specified as 'object' parameter. Return back the subject document.",
      "hierarchyPath": "/op:Document.AddRelation",
      "label": "Create Relation",
      "name": "Document.AddRelation",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.services.CreateRelation",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "object",
          "order": 0,
          "type": "document",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": true,
          "name": "predicate",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "outgoing",
          "order": 0,
          "type": "boolean",
          "values": [
            "false"
          ],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.AddRelation",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Relations.DeleteRelation"
      ],
      "category": "Services",
      "contributingComponent": "org.nuxeo.ecm.core.automation.featuresContrib",
      "description": "Delete a relation between 2 documents. The subject of the relation will be the input of the operation and the object of the relation will be retrieved from the context using the 'object' field. The 'predicate' field specifies the relation predicate (When using a known predicate, use the full URL like 'purl.org/dc/terms/IsBasedOn', unknown predicates will be treated as plain strings and be the same on the subject and object). The 'outgoing' flag indicates the direction of the relation - the default is false which means the relation will go from the input object to the object specified as 'object' parameter. Return back the subject document.",
      "hierarchyPath": "/op:Document.DeleteRelation",
      "label": "Delete Relation",
      "name": "Document.DeleteRelation",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.services.DeleteRelation",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "object",
          "order": 0,
          "type": "document",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": true,
          "name": "predicate",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "outgoing",
          "order": 0,
          "type": "boolean",
          "values": [
            "false"
          ],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.DeleteRelation",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Services",
      "contributingComponent": "org.nuxeo.ecm.core.automation.featuresContrib",
      "description": "Retrieve data collected by one or more Counters",
      "hierarchyPath": "/op:Counters.GET",
      "label": "Retrieve counters values",
      "name": "Counters.GET",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.management.GetCounters",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "counterNames",
          "order": 0,
          "type": "stringlist",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "blob"
      ],
      "url": "Counters.GET",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "UserWorkspace.Get"
      ],
      "category": "Users & Groups",
      "contributingComponent": "org.nuxeo.ecm.core.automation.featuresContrib",
      "description": "Retrieve user's personal workspace.",
      "hierarchyPath": "/op:User.GetUserWorkspace",
      "label": "Get Home",
      "name": "User.GetUserWorkspace",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.services.UserWorkspace",
      "params": [],
      "signature": [
        "void",
        "document"
      ],
      "url": "User.GetUserWorkspace",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Audit.Log"
      ],
      "category": "Services",
      "contributingComponent": "org.nuxeo.ecm.core.automation.featuresContrib",
      "description": "Log events into audit for each of the input document. The operation accept as input one ore more documents that are returned back as the output.",
      "hierarchyPath": "/op:Audit.LogEvent",
      "label": "Log Event In Audit",
      "name": "Audit.LogEvent",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.services.AuditLog",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "event",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": "AuditEvent"
        },
        {
          "description": null,
          "isRequired": false,
          "name": "category",
          "order": 0,
          "type": "string",
          "values": [
            "Automation"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "comment",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": "TextArea"
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Audit.LogEvent",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Services",
      "contributingComponent": "org.nuxeo.ecm.core.automation.featuresContrib",
      "description": "Create Document(s) from Blob(s) using the FileManagerService.",
      "hierarchyPath": "/op:FileManager.Import",
      "label": "Create Document from file",
      "name": "FileManager.Import",
      "operationClass": "org.nuxeo.ecm.automation.core.operations.services.FileManagerImport",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "overwite",
          "order": 0,
          "type": "boolean",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "bloblist",
        "documents",
        "blob",
        "document"
      ],
      "url": "FileManager.Import",
      "version": "7.10"
    }
  ],
  "packages": [],
  "pluginSnapshots": {},
  "releaseDate": 1447023600000,
  "version": "7.10"
}